prototype spike implementation