finished up the code, not functional yet