Refuctored alot of the api and 'querying'... Current state is messy, but more refuctoring to come