factor classes into separate files