Handshake Refactor

refactor

The handshake will now request items individually if it steps into the 'individual request mode'.

Handshake tests now cover 100% of lines, statements and branches within the module.