Fastest implementation so far