few modificiations