sticking to this method now..needs improvement