steps towards modularity
ffs