moved core.py to modules