functional with bug. need to evaluate commands