exposed with value and ptr