Move and rename classes and methods... Trying to split this up into more
logical bits

Signed-off-by: Gawain Lynch <gawain.lynch@gmail.com>