There was a huge work. This commint close #25, close #26 and close #28