bind semantics and candidate system functions now make sense... no more 'nil' placeholder