Updated for modularity