closes feature #4 closes feature #3