Improvements && some bug fixed