adds tags, refactors and messes some stuff up, good luck!