refactored a little and released 0.5