Big refactor, will up to 0.7 or 1.0 once !bugs