finished (only thing left is the table problem)