some bug need to be checked
looks great :)