¬_¬ rewrite the code all over again