Issue #2, #3, #4 has been worked on