Updated functions for best performance [2]