cleaned up errors, tested, finalized