refactored #35