Modularized, a bit, needs more work