finally finished. for real this time