Made major changes to base, hopefully for the better ;)