Main Logic pretty much done