accepts props list as argument