added precision brush mode, need to optimize it to make it DRY compliant