first try to implement new approach