alternate solutions