trying to merge
will modify logic