:( wished this could be more flexible