down-votes tested and refactored