initial snap implementation