Huge rearrange. Behaviours in separate files.