[UPDATE] First major commit, please review the README for full details