complete version

still needs edits but does everything