still deciding on the best approach. moving towards modules