merged branch 'modular' into divided_up_user_layer