split into separate modules, add __main__

current working state of project will be reset soon, just needed to
keep to make sure I have all the ideas I need