use customs and hooks