two alternative solutions