core functionality moved to kit.py