solve it elegant, goood
solve it by BF, good