Many modifications to get closer to ruby's standards