finished.
add final tests