almost works again fully, just have to encapsulate and improved gitignore