started splitting things into classes