modified from mac
forced to merge