use try() instead of present?