use call more often and lass apply, which is a bit slower