***WARNING*** This commit will break all older versions, but added a lot of new functionality.