add lots of tweeks mostly from vimbits