checkout module with validation