we may want to make a view to abstract like this (like @aricha has been doing)