Further split out stuff into different classes

Signed-off-by: Patrick Van Brussel <patrick@inuits.eu>