Moving all functionality into related modules