working draft logic