many adjustments and functionalities added.