last changes and prepare to add other functionality