First try, still something wrong with performance