closes #21 , closes #22 , closes #23 ,closes #13