breaked all functionality into several thematical packages