added function patterns
making it a little clearer
?