work bitch v20. improving code little by little