added cleaned, added some features