overhauled and added files. still in progress.