everything up to @SessionAttributes issue