moved each feature to its own module