Draft a model for nucleation
Move the Nucleus class and some functions to a separate module